﻿using System;
using System.Collections.Generic;
using System.Text;

namespace SMBL.Interface.Operation
{
    /// <summary>
    /// Interface Operation
    /// @Author: Push
    /// </summary>
    public interface IOperation : IOpError
    {
        /// <summary>
        /// Method invoked by Control Center
        /// Do what the operation need to do
        /// @Author: Push
        /// </summary>
        void processDelegate();

        /// <summary>
        /// Recive an Processor from the Control Center
        /// The operation need to store the provider
        /// @Author: Push
        /// </summary>
        /// <param name="TheProvider"></param>
        void SetProcessor(Object ObjProcessor);

        /// <summary>
        /// Returen the Processor the Operation has stored
        /// Cut the connection with the provider
        /// @Authro: Push
        /// </summary>
        /// <returns></returns>
        void ReleaseProcessor();

        /// <summary>
        /// Return the string bound with the operation
        /// Maybe the database name or the file path.
        /// @Author: Push
        /// </summary>
        /// <returns></returns>
        String GetBindString();

        /// <summary>
        /// Process operation
        /// @Author: Push
        /// </summary>
        /// <returns>the statue</returns>
        Boolean Do();
    }
}
